class Modelo < ActiveRecord::Base
  validates_presence_of :nombre
  has_many :columnas
  TIPOS = [["CSV", 0]]
  def tipo_nombre
    TIPOS[self.tipo][0]
  end
  def self.duplicar(id)
    original = Modelo.find(id)
    nuevo = Modelo.new(original.attributes)
    original.columnas.each do |col|
      new_col = nuevo.columnas.new(col.attributes)
      new_col.modelo = nuevo
      new_col.save
    end
    nuevo.nombre = "Copia de #{nuevo.nombre}"
    nuevo.save
    nuevo
  end

  def self.get_models
    basedir = File.join(RAILS_ROOT, "app", "models")
    Dir.chdir(basedir)
    result = []
    Dir.glob("*.rb").each do |file|
      result << file.split(".")[0].classify
    end
    result.sort
  end
  def db_columnas
    unless self.modelo.empty? 
      clase = self.modelo.constantize
      if clase.respond_to?(:columns)
        return clase.columns.map {|col| col.name }
      end
    end
  end
end
